Previous approaches to interfacing applications include non-standard interfaces and open-standard interfaces. Customized development of non-standard interfaces between applications is a common practice today for all enterprises. The work is typically performed by in-house information-technology (IT) engineers, by application vendors, or by independent software consultants. Alternatively, manual coding of open-standard interfaces between applications may be implemented. Open-standard interfaces may include Service Oriented Architecture (SOA), J2EE, WSDL, SOAP, XML, or others from specific industries like the Telemanagement Forum SID (www.tmforum.org) or the Operations Support System through Java (OSS/J) Initiative (www.ossj.org) in the telecommunications sector.
These approaches have disadvantages. First, customized development of interfaces is a very labor intensive task given that enterprise application interfaces are numerous, very complex, and expensive to maintain. Thus, a very large portion of an IT budget may be consumed by the integration and maintenance of interfaces. Second, upgrades or modifications to an underlying application may render an interface inoperable given that interfaces to applications are often tightly coupled to the applications. Thus, an application change may require additional upgrades or changes to a corresponding interface. Third, the architecture of an interface is often known only to the particular engineers who developed the interface. Thus, delays, malfunctions, and interruptions can result when certain engineers are unavailable to assist with ongoing interface problems.
Open-standard interfaces, like those defined in the Service Oriented Architecture (SOA), address some of the above concerns. To begin, open-standard interfaces are often loosely coupled to prevent changes in underlying applications from affecting an interface. However, open-standards interfaces are still difficult to design, specify, develop, and maintain specifically because open-standard interfaces require that files be exactly defined in accordance to certain standard rules. Defining files is laborious, tedious, and time consuming.